home *** CD-ROM | disk | FTP | other *** search
/ C/C++ Users Group Library 1996 July / C-C++ Users Group Library July 1996.iso / vol_400 / 419_01 / odmg10 / config / sgi.cf < prev    next >
Encoding:
Text File  |  1993-06-02  |  22.4 KB  |  676 lines

  1. /* ************************************************************************** */
  2. /* *************************** New R4 Stuff HERE **************************** */
  3. /* ************************************************************************** */
  4.  
  5. #define OSName            IRIX
  6. #define OSMajorVersion        4
  7. /*
  8.  * WARNING : We're pretending that we're already IRIX 4.0 (Cypress)
  9.  */
  10. #define OSMinorVersion        0
  11.  
  12. #define NeedDefineMakeCmdToMake NO    /* make program "knows" $(MAKE) */
  13. #define HasLargeTmp        YES    /* don't be paranoid */
  14. #define HasPutenv        YES
  15. #define HasSharedLibraries    YES    /* System V.3 static link libraries */
  16. #define StripInstalledPrograms    YES    /* save disk space */
  17. #define ExecableScripts        YES
  18. #define SetTtyGroup        YES
  19. #define HasNdbm            YES
  20. #define HasVFork        NO    /* Removed in 4.0 - no win */
  21.  
  22. #define SharedCodeDef -DSHAREDCODE
  23. #define SharedLibraryDef -DATTSHAREDLIB
  24. #define NeedFunctionPrototypes    YES
  25. #define NeedWidePrototypes    NO
  26.  
  27. #define SharedLibX        YES    /* Build & use sharable libX11 */
  28. #define SharedLibXt        YES    /* Build & use sharable libXt */
  29.  
  30. /* Extra libraries provide : yp, sysV malloc & shared libc */
  31. #define ExtraLibraries -lsun -lmalloc -lc_s
  32.  
  33. /* ************************************************************************** */
  34. /* *************************** END R4 Stuff HERE **************************** */
  35. /* ************************************************************************** */
  36.  
  37. /* ************************************************************************** */
  38. /* ************************ OS Version Dependancies ************************* */
  39. /* ************************************************************************** */
  40.  
  41. /* OS dependant available "IPC" Methods Parameter */
  42. #define ConnectionFlags -DTCPCONN -DUNIXCONN
  43.  
  44. #define CCPreprocessorFlags /* As Nothing For the Standard "cpp" */
  45. /* NOTE: the SGI cc driver invoking the ANSI cpp does NOT define __STDC__ */
  46. /* #define CCPreprocessorFlags -acpp -D__STDC__ -D__EXTENSIONS__ */
  47.  
  48. /* this is for floating point, ANSI cpp */
  49. #define DefaultCCOptions -prototypes -cckr -float CCPreprocessorFlags
  50.  
  51. /* ************************************************************************** */
  52. /* ************ Begin Macros defined by the Imake.tmpl template ************* */
  53. /* ************************************************************************** */
  54. /* Some things build better if we pretend we're not SystemV, but not all */
  55. #define SystemV            YES
  56.  
  57. /* At SGI, we don't need this */
  58. #define ConstructMFLAGS        NO    /* build MFLAGS from MAKEFLAGS */
  59.  
  60. /* At SGI, in 3.2 we have TCP/IP sockets only, 3.3 has unix domain also ! */
  61. #define HasSockets        YES
  62.  
  63. /* At SGI, we have long file names */
  64. #define ExpandManNames        YES
  65.  
  66. /* We support xdm's configuation files */
  67. #define InstallXdmConfig    YES    /* install sample xdm config */
  68.  
  69. /* Used only for compressed fonts */
  70. #define UNCOMPRESSPATH /usr/bsd/uncompress
  71.  
  72. /* Normally used only to conditionally chose the default font path order */
  73. #define PrimaryScreenResolution 96
  74.  
  75. /* We will use DEC's PCF format for IRIX 4.0 */
  76. #define UsePCFFonts YES
  77.  
  78. /* We use DEC's XV */
  79. #define BuildXvExt YES
  80. #define ExtensionOSDefines -DXV
  81.  
  82. #define DefaultFontPath $(FONTDIR)/100dpi/,$(FONTDIR)/75dpi/,$(FONTDIR)/misc/
  83.  
  84. /* Override Imake.tmpl's "-X" flag */
  85. #define LdCombineFlags -r
  86.  
  87. /* Installation Build Parameters */
  88. #define InstKmemFlags -m 2755 -g sys
  89.  
  90. #define ArCmd ar scq
  91. #define LnCmd ln -s
  92.  
  93. #ifdef UseInstalled
  94. #define InstallCmd bsdinst.sh
  95. #endif
  96.  
  97. /* for xdm or anyone else to use */
  98. #define DefaultUserPath :/usr/sbin:/usr/bsd:/usr/bin:/bin:/usr/bin/X11:/etc:/usr/etc
  99. #define DefaultSystemPath /usr/sbin:/usr/bsd:/bin:/etc:/usr/bin:/usr/etc:/usr/bin/X11
  100.  
  101. /* Library Build Parameters */
  102. #define BandAidLibraryNeeded    NO
  103.  
  104. /* ************************************************************************** */
  105. /* ************* End Macros defined by the Imake.tmpl template ************** */
  106. /* ************************************************************************** */
  107. /* Replacement Rules */
  108. /* Changed to a single shell command for pmake/smake */
  109. /*
  110.  * NormalLibraryObjectRule - generate make rules to build "normal" objects.
  111.  */
  112. #define    NormalLibraryObjectRule()                    @@\
  113. .c.o:                                    @@\
  114.     $(RM) $@ $*.os \                        @@\
  115.     && $(CC) -c $(CFLAGS) $*.c \                    @@\
  116.     && $(LD) -r $@ -o $*.os \                    @@\
  117.     && $(MV) $*.os $@
  118.  
  119. #define NormalMultiObjectRule(dst,src,flag)                @@\
  120. dst.c:                                    @@\
  121.     $(LN) src.c dst.c                        @@\
  122. dst.o: src.c dst.c                            @@\
  123.     $(RM) dst.o dst.os \                        @@\
  124.     && $(CC) flag $(CFLAGS) -c dst.c \                @@\
  125.     && $(LD) -r dst.o -o dst.os \                    @@\
  126.     && $(MV) dst.os dst.o                        @@\
  127. depend:: dst.c                                @@\
  128. clean::                                    @@\
  129.     $(RM) dst.c
  130.  
  131. /*
  132.  * ProfiledLibraryObjectRule - generate make rules to build both profiled
  133.  * and "normal" objects.
  134.  */
  135. #define    ProfiledLibraryObjectRule()                    @@\
  136. all::                                    @@\
  137.     @if [ ! -d profiled ]; then mkdir profiled; else exit 0; fi    @@\
  138.                                     @@\
  139. .c.o:                                    @@\
  140.     $(RM) $@ profiled/$@ $*.os \                    @@\
  141.     && $(CC) -pg -c $(CFLAGS) $*.c \                @@\
  142.     && $(MV) $@ profiled/$@ \                    @@\
  143.     && $(CC) -c $(CFLAGS) $*.c \                    @@\
  144.     && $(LD) -r $@ -o $*.os \                    @@\
  145.     && $(MV) $*.os $@                        @@\
  146.                                     @@\
  147. clean::                                    @@\
  148.     -@if [ -d profiled ]; then echo "    $(RM) profiled/?*.o"; \    @@\
  149.         $(RM) profiled/?*.o; else exit 0; fi            @@\
  150.  
  151. #define ProfiledMultiObjectRule(dst,src,flag)                @@\
  152. dst.c:                                    @@\
  153.     $(LN) src.c dst.c                        @@\
  154. dst.o: src.c dst.c                            @@\
  155.     $(RM) dst.o profiled/dst.o dst.os \                @@\
  156.     && $(CC) flag $(CFLAGS) -c -pg dst.c \                @@\
  157.     && $(MV) dst.o profiled/dst.o \                    @@\
  158.     && $(CC) flag $(CFLAGS) -c dst.c \                @@\
  159.     && $(LD) -r dst.o -o dst.os \                    @@\
  160.     && $(MV) dst.os dst.o                        @@\
  161. depend:: dst.c                                @@\
  162. clean::                                    @@\
  163.     $(RM) dst.c
  164. /*
  165.  * DebuggedLibraryObjectRule - generate make rules to build both debuggable
  166.  * and "normal" objects.
  167.  */
  168. #define    DebuggedLibraryObjectRule()                    @@\
  169. all::                                    @@\
  170.     @if [ ! -d debugger ]; then mkdir debugger; else exit 0; fi    @@\
  171.                                     @@\
  172. .c.o:                                    @@\
  173.     $(RM) $@ debugger/$@ $*.os \                    @@\
  174.     && $(CC) -g -c $(CFLAGS) $*.c \                    @@\
  175.     && $(MV) $@ debugger/$@ \                    @@\
  176.     && $(CC) -c $(CFLAGS) $*.c \                    @@\
  177.     && $(LD) -r $@ -o $*.os \                    @@\
  178.     && $(MV) $*.os $@                        @@\
  179.                                     @@\
  180. clean::                                    @@\
  181.     -@if [ -d debugger ]; then echo "    $(RM) debugger/?*.o"; \ @@\
  182.         $(RM) debugger/?*.o; else exit 0; fi            @@\
  183.  
  184. #define DebuggedMultiObjectRule(dst,src,flag)                @@\
  185. dst.c:                                    @@\
  186.     $(LN) src.c dst.c                        @@\
  187. dst.o: src.c dst.c                            @@\
  188.     $(RM) dst.o debugger/dst.o dst.os \                @@\
  189.     && $(CC) flag $(CFLAGS) -c -g dst.c \                @@\
  190.     && $(MV) dst.o debugger/dst.o \                    @@\
  191.     && $(CC) flag $(CFLAGS) -c dst.c \                @@\
  192.     && $(LD) -r dst.o -o dst.os \                    @@\
  193.     && $(MV) dst.os dst.o                        @@\
  194. depend:: dst.c                                @@\
  195. clean::                                    @@\
  196.     $(RM) dst.c
  197.  
  198. /*
  199.  * DebuggedAndProfiledLibraryOjbectRule - generate make rules to build
  200.  * debuggable, profiled, and "normal" objects.
  201.  */
  202. #define    DebuggedAndProfiledLibraryObjectRule()                @@\
  203. all::                                    @@\
  204.     @if [ ! -d profiled ]; then mkdir profiled; else exit 0; fi    @@\
  205.     @if [ ! -d debugger ]; then mkdir debugger; else exit 0; fi    @@\
  206.                                     @@\
  207. .c.o:                                    @@\
  208.     $(RM) $@ profiled/$@ debugger/$@ $*.os \            @@\
  209.     && $(CC) -pg -c $(CFLAGS) $*.c \                @@\
  210.     && $(MV) $@ profiled/$@ \                    @@\
  211.     && $(CC) -g -c $(CFLAGS) $*.c \                    @@\
  212.     && $(MV) $@ debugger/$@ \                    @@\
  213.     && $(CC) -c $(CFLAGS) $*.c \                    @@\
  214.     && $(LD) -r $@ -o $*.os \                    @@\
  215.     && $(MV) $*.os $@                        @@\
  216.                                     @@\
  217. clean::                                    @@\
  218.     -@if [ -d profiled ]; then echo "    $(RM) profiled/?*.o"; \ @@\
  219.         $(RM) profiled/?*.o; else exit 0; fi            @@\
  220.     -@if [ -d debugger ]; then echo "    $(RM) debugger/?*.o"; \ @@\
  221.         $(RM) debugger/?*.o; else exit 0; fi            @@\
  222.  
  223. #define DebuggedAndProfiledMultiObjectRule(dst,src,flag)        @@\
  224. dst.c:                                    @@\
  225.     $(LN) src.c dst.c                        @@\
  226. dst.o: src.c dst.c                            @@\
  227.     $(RM) dst.o debugger/dst.o dst.os profiled/dst.o \        @@\
  228.     && $(CC) flag $(CFLAGS) -c -g dst.c \                @@\
  229.     && $(MV) dst.o debugger/dst.o \                    @@\
  230.     && $(CC) flag $(CFLAGS) -c -pg dst.c \                @@\
  231.     && $(MV) dst.o profiled/dst.o \                    @@\
  232.     && $(CC) flag $(CFLAGS) -c dst.c \                @@\
  233.     && $(LD) -r dst.o -o dst.os \                    @@\
  234.     && $(MV) dst.os dst.o                        @@\
  235. depend:: dst.c                                @@\
  236. clean::                                    @@\
  237.     $(RM) dst.c
  238.  
  239. /*
  240.  * SharedLibraryObjectRule - generate make rules to build shared and "normal"
  241.  * object files.
  242.  */
  243. #ifndef SharedLibraryObjectRule
  244. #define SharedLibraryObjectRule()                    @@\
  245. all::                                    @@\
  246.     @if [ ! -d shared ]; then mkdir shared; else exit 0; fi        @@\
  247.                                     @@\
  248. .c.o:                                    @@\
  249.     $(RM) $@ shared/$@ $*.os \                    @@\
  250.     && $(CC) -G 0 -c $(SHAREDCODEDEF) $(SHLIBDEF) $(CFLAGS) $*.c \    @@\
  251.     && $(MV) $@ shared/$*.o \                    @@\
  252.     && $(CC) -c $(CFLAGS) $*.c \                    @@\
  253.     && $(LD) -r $@ -o $*.os \                    @@\
  254.     && $(MV) $*.os $@                        @@\
  255.                                     @@\
  256. clean::                                    @@\
  257.     -@if [ -d shared ]; then echo "    $(RM) shared/?*.o"; \        @@\
  258.         $(RM) shared/?*.o; else exit 0; fi            @@\
  259.  
  260. #endif /* SharedLibraryObjectRule */
  261.  
  262. /*
  263.  * SharedAndDebuggedLibraryObjectRule - generate make rules to build shared,
  264.  * debuggable, and "normal" object files.
  265.  */
  266. #ifndef SharedAndDebuggedLibraryObjectRule
  267. #define SharedAndDebuggedLibraryObjectRule()                @@\
  268. all::                                    @@\
  269.     @if [ ! -d shared ]; then mkdir shared; else exit 0; fi        @@\
  270.     @if [ ! -d debugger ]; then mkdir debugger; else exit 0; fi    @@\
  271.                                     @@\
  272. .c.o:                                    @@\
  273.     $(RM) $@ shared/$@ debugger/$@ $*.os \                @@\
  274.     && $(CC) -G 0 -c $(SHAREDCODEDEF) $(SHLIBDEF) $(CFLAGS) $*.c \    @@\
  275.     && $(MV) $@ shared/$*.o \                    @@\
  276.     && $(CC) -g -c $(CFLAGS) $*.c \                    @@\
  277.     && $(MV) $@ debugger/$@ \                    @@\
  278.     && $(CC) -c $(CFLAGS) $*.c \                    @@\
  279.     && $(LD) -r $@ -o $*.os \                    @@\
  280.     && $(MV) $*.os $@                        @@\
  281.                                     @@\
  282. clean::                                    @@\
  283.     -@if [ -d shared ]; then echo "    $(RM) shared/?*.o"; \        @@\
  284.         $(RM) shared/?*.o; else exit 0; fi            @@\
  285.     -@if [ -d debugger ]; then echo "    $(RM) debugger/?*.o"; \ @@\
  286.         $(RM) debugger/?*.o; else exit 0; fi            @@\
  287.  
  288. #endif /* SharedAndDebuggedLibraryObjectRule */
  289.  
  290. /*
  291.  * SpecialSharedAndDebuggedObjectRule - generate rules to compile a file 
  292.  * with special flags and to make shared and debuggable versions.
  293.  */
  294. #ifndef SpecialSharedAndDebuggedObjectRule
  295. #define    SpecialSharedAndDebuggedObjectRule(objs,depends,options)    @@\
  296. all::                                    @@\
  297.     @if [ ! -d shared ]; then mkdir shared; else exit 0; fi        @@\
  298.     @if [ ! -d debugger ]; then mkdir debugger; else exit 0; fi    @@\
  299.                                     @@\
  300. objs:    depends                                @@\
  301.     $(RM) $@ shared/$@ debugger/$@ $*.os \                @@\
  302.     && $(CC) -G 0 -c $(SHAREDCODEDEF) $(SHLIBDEF) $(CFLAGS) options $*.c \    @@\
  303.     && $(MV) $@ shared/$*.o \                    @@\
  304.     && $(CC) -g -c $(CFLAGS) options $*.c \                @@\
  305.     && $(MV) $@ debugger/$@ \                    @@\
  306.     && $(CC) -c $(CFLAGS) options $*.c \                @@\
  307.     && $(LD) -r $@ -o $*.os \                    @@\
  308.     && $(MV) $*.os $@
  309.  
  310. #endif /* SpecialSharedAndDebuggedObjectRule */
  311.  
  312. /*
  313.  * SpecialSharedObjectRule - generate rules to compile a file 
  314.  * with special flags and to make shared and debuggable versions.
  315.  */
  316. #ifndef SpecialSharedObjectRule
  317. #define    SpecialSharedObjectRule(objs,depends,options)            @@\
  318. all::                                    @@\
  319.     @if [ ! -d shared ]; then mkdir shared; else exit 0; fi        @@\
  320.                                     @@\
  321. objs:    depends                                @@\
  322.     $(RM) $@ shared/$@ $*.os \                    @@\
  323.     && $(CC) -G 0 -c $(SHAREDCODEDEF) $(SHLIBDEF) $(CFLAGS) options $*.c \    @@\
  324.     && $(MV) $@ shared/$*.o \                    @@\
  325.     && $(CC) -c $(CFLAGS) options $*.c \                @@\
  326.     && $(LD) -r $@ -o $*.os \                    @@\
  327.     && $(MV) $*.os $@
  328.  
  329. #endif /* SpecialSharedObjectRule */
  330.  
  331. /*
  332.  * SpecialObjectRule - generate rules to compile a file with special flags.
  333.  */
  334. #ifndef SpecialObjectRule
  335. #define SpecialObjectRule(objs,depends,options)                @@\
  336. objs:    depends                                @@\
  337.     $(RM) $@ $*.os \                        @@\
  338.     && $(CC) -c $(CFLAGS) options $*.c \                @@\
  339.     && $(LD) -r $@ -o $*.os \                    @@\
  340.     && $(MV) $*.os $@
  341. #endif /* SpecialObjectRule */
  342.  
  343. /*
  344.  * SpecialProfiledObjectRule - generate rules to compile a file with special
  345.  * flags and to make a profiled version.
  346.  */
  347. #ifndef SpecialProfiledObjectRule
  348. #define    SpecialProfiledObjectRule(objs,depends,options)            @@\
  349. all::                                    @@\
  350.     @if [ ! -d profiled ]; then mkdir profiled; else exit 0; fi    @@\
  351.                                     @@\
  352. objs:    depends                                @@\
  353.     $(RM) $@ profiled/$@ $*.os  \                    @@\
  354.     && $(CC) -pg -c $(CFLAGS) options $*.c \            @@\
  355.     && $(MV) $*.o profiled/$*.o \                    @@\
  356.     && $(CC) -c $(CFLAGS) options $*.c \                @@\
  357.     && $(LD) -r $@ -o $*.os \                    @@\
  358.     && $(MV) $*.os $@
  359. #endif /* SpecialProfiledObjectRule */
  360.  
  361. /*
  362.  * SpecialDebuggedObjectRule - generate rules to compile a file with special
  363.  * flags and to make a debuggable version.
  364.  */
  365. #ifndef SpecialDebuggedObjectRule
  366. #define    SpecialDebuggedObjectRule(objs,depends,options)            @@\
  367. all::                                    @@\
  368.     @if [ ! -d debugger ]; then mkdir debugger; else exit 0; fi    @@\
  369.                                     @@\
  370. objs:    depends                                @@\
  371.     $(RM) $@ debugger/$@ $*.os \                    @@\
  372.     && $(CC) -g -c $(CFLAGS) options $*.c \                @@\
  373.     && $(MV) $*.o debugger/$*.o \                    @@\
  374.     && $(CC) -c $(CFLAGS) options $*.c \                @@\
  375.     && $(LD) -r $@ -o $*.os \                    @@\
  376.     && $(MV) $*.os $@
  377. #endif /* SpecialDebuggedObjectRule */
  378.  
  379. /*
  380.  * SpecialDebuggedAndProfiledObjectRule - generate rules to compile a file 
  381.  * with special flags and to make debuggable and profiled versions.
  382.  */
  383. #ifndef SpecialDebuggedAndProfiledObjectRule
  384. #define    SpecialDebuggedAndProfiledObjectRule(objs,depends,options)    @@\
  385. all::                                    @@\
  386.     @if [ ! -d profiled ]; then mkdir profiled; else exit 0; fi    @@\
  387.     @if [ ! -d debugger ]; then mkdir debugger; else exit 0; fi    @@\
  388.                                     @@\
  389. objs:    depends                                @@\
  390.     $(RM) $@ profiled/$@ debugger/$@ $*.os  \            @@\
  391.     && $(CC) -pg -c $(CFLAGS) options $*.c \            @@\
  392.     && $(MV) $@ profiled/$@ \                    @@\
  393.     && $(CC) -g -c $(CFLAGS) options $*.c \                @@\
  394.     && $(MV) $@ debugger/$@ \                    @@\
  395.     && $(CC) -c $(CFLAGS) options $*.c \                @@\
  396.     && $(LD) -r $@ -o $*.os \                    @@\
  397.     && $(MV) $*.os $@
  398. #endif /* SpecialDebuggedAndProfiledObjectRule */
  399.  
  400. #define    GZeroLibraryObjectRule()                    @@\
  401. all::                                    @@\
  402.     @if [ ! -d gzero ]; then mkdir gzero; else exit 0; fi        @@\
  403. .c.o:                                    @@\
  404.     $(RM) $@ gzero/$@ $*.os \                    @@\
  405.     && $(CC) -G 0 -c $(CFLAGS) $*.c \                @@\
  406.     && $(LD) -r $@ -o gzero/$@ \                    @@\
  407.     && $(CC) -c $(CFLAGS) $*.c \                    @@\
  408.     && $(LD) -r $@ -o $*.os \                    @@\
  409.     && $(MV) $*.os $@                        @@\
  410.                                     @@\
  411. clean::                                    @@\
  412.     -@if [ -d gzero ]; then echo "    $(RM) gzero/?*.o"; \        @@\
  413.         $(RM) gzero/?*.o; else exit 0; fi            @@\
  414.  
  415. /*
  416.  * DebuggedAndGZeroLibraryObjectRule - generate make rules to build
  417.  * debuggable, "-G 0", and "normal" objects.
  418.  */
  419. #define    DebuggedAndGZeroLibraryObjectRule()                @@\
  420. all::                                    @@\
  421.     @if [ ! -d debugger ]; then mkdir debugger; else exit 0; fi    @@\
  422.     @if [ ! -d gzero ]; then mkdir gzero; else exit 0; fi        @@\
  423.                                     @@\
  424. .c.o:                                    @@\
  425.     $(RM) $@ debugger/$@ gzero/$@ $*.os \                @@\
  426.     && $(CC) -g -c $(CFLAGS) $*.c \                    @@\
  427.     && $(MV) $@ debugger/$@ \                    @@\
  428.     && $(CC) -G 0 -c $(CFLAGS) $*.c \                @@\
  429.     && $(LD) -r $@ -o gzero/$@ \                    @@\
  430.     && $(CC) -c $(CFLAGS) $*.c \                    @@\
  431.     && $(LD) -r $@ -o $*.os \                    @@\
  432.     && $(MV) $*.os $@                        @@\
  433.                                     @@\
  434. clean::                                    @@\
  435.     -@if [ -d debugger ]; then echo "    $(RM) debugger/?*.o"; \ @@\
  436.         $(RM) debugger/?*.o; else exit 0; fi            @@\
  437.     -@if [ -d gzero ]; then echo "    $(RM) gzero/?*.o"; \        @@\
  438.         $(RM) gzero/?*.o; else exit 0; fi            @@\
  439.  
  440. /*
  441.  * SharedAndGZeroLibraryObjectRule - generate make rules to build shared,
  442.  * "-G 0", and "normal" object files.
  443.  */
  444. #define SharedAndGZeroLibraryObjectRule()                @@\
  445. all::                                    @@\
  446.     @if [ ! -d shared ]; then mkdir shared; else exit 0; fi        @@\
  447.     @if [ ! -d gzero ]; then mkdir gzero; else exit 0; fi        @@\
  448.                                     @@\
  449. .c.o:                                    @@\
  450.     $(RM) $@ gzero/$@ shared/$@ $*.os \                @@\
  451.     && $(CC) -G 0 -c $(SHAREDCODEDEF) $(SHLIBDEF) $(CFLAGS) $*.c \    @@\
  452.     && $(MV) $@ shared/$*.o \                    @@\
  453.     && $(CC) -G 0 -c $(CFLAGS) $*.c \                @@\
  454.     && $(LD) -r $@ -o gzero/$@ \                    @@\
  455.     && $(CC) -c $(CFLAGS) $*.c \                    @@\
  456.     && $(LD) -r $@ -o $*.os \                    @@\
  457.     && $(MV) $*.os $@                        @@\
  458.                                     @@\
  459. clean::                                    @@\
  460.     -@if [ -d shared ]; then echo "    $(RM) shared/?*.o"; \        @@\
  461.         $(RM) shared/?*.o; else exit 0; fi            @@\
  462.     -@if [ -d gzero ]; then echo "    $(RM) gzero/?*.o"; \        @@\
  463.         $(RM) gzero/?*.o; else exit 0; fi            @@\
  464.  
  465.  
  466. /*
  467.  * SharedAndDebuggedAndGZeroLibraryObjectRule - generate make rules to
  468.  * build shared, debuggable, "-G 0", and "normal" object files.
  469.  */
  470. #define SharedAndDebuggedAndGZeroLibraryObjectRule()            @@\
  471. all::                                    @@\
  472.     @if [ ! -d shared ]; then mkdir shared; else exit 0; fi        @@\
  473.     @if [ ! -d debugger ]; then mkdir debugger; else exit 0; fi    @@\
  474.     @if [ ! -d gzero ]; then mkdir gzero; else exit 0; fi        @@\
  475.                                     @@\
  476. .c.o:                                    @@\
  477.     $(RM) $@ shared/$@ gzero/$@ debugger/$@ $*.os \            @@\
  478.     && $(CC) -G 0 -c $(SHAREDCODEDEF) $(SHLIBDEF) $(CFLAGS) $*.c \    @@\
  479.     && $(MV) $@ shared/$*.o \                    @@\
  480.     && $(CC) -g -c $(CFLAGS) $*.c \                    @@\
  481.     && $(MV) $@ debugger/$@ \                    @@\
  482.     && $(CC) -G 0 -c $(CFLAGS) $*.c \                @@\
  483.     && $(LD) -r $@ -o gzero/$@ \                    @@\
  484.     && $(CC) -c $(CFLAGS) $*.c \                    @@\
  485.     && $(LD) -r $@ -o $*.os \                    @@\
  486.     && $(MV) $*.os $@                        @@\
  487.                                     @@\
  488. clean::                                    @@\
  489.     -@if [ -d shared ]; then echo "    $(RM) shared/?*.o"; \        @@\
  490.         $(RM) shared/?*.o; else exit 0; fi            @@\
  491.     -@if [ -d debugger ]; then echo "    $(RM) debugger/?*.o"; \ @@\
  492.         $(RM) debugger/?*.o; else exit 0; fi            @@\
  493.     -@if [ -d gzero ]; then echo "    $(RM) gzero/?*.o"; \        @@\
  494.         $(RM) gzero/?*.o; else exit 0; fi            @@\
  495.  
  496.  
  497. /*
  498.  * SpecialSharedAndDebuggedAndGZeroObjectRule - generate rules to compile
  499.  * a file with special flags and to make many versions.
  500.  */
  501. #define    SpecialSharedAndDebuggedAndGZeroObjectRule(objs,depends,options)@@\
  502. all::                                    @@\
  503.     @if [ ! -d shared ]; then mkdir shared; else exit 0; fi        @@\
  504.     @if [ ! -d debugger ]; then mkdir debugger; else exit 0; fi    @@\
  505.     @if [ ! -d gzero ]; then mkdir gzero; else exit 0; fi        @@\
  506.                                     @@\
  507. objs:    depends                                @@\
  508.     $(RM) $@ shared/$@ gzero/$@ debugger/$@ $*.os \            @@\
  509.     && $(CC) -G 0 -c $(SHAREDCODEDEF) $(SHLIBDEF) $(CFLAGS) options $*.c \    @@\
  510.     && $(MV) $@ shared/$*.o \                    @@\
  511.     && $(CC) -g -c $(CFLAGS) options $*.c \                @@\
  512.     && $(MV) $@ debugger/$@ \                    @@\
  513.     && $(CC) -G 0 -c $(CFLAGS) options $*.c \            @@\
  514.     && $(LD) -r $@ -o gzero/$@ \                    @@\
  515.     && $(CC) -c $(CFLAGS) options $*.c \                @@\
  516.     && $(LD) -r $@ -o $*.os \                    @@\
  517.     && $(MV) $*.os $@
  518.  
  519.  
  520. /*
  521.  * SpecialSharedAndGZeroObjectRule - generate rules to compile a file 
  522.  * with special flags and to make shared and debuggable versions.
  523.  */
  524. #define    SpecialSharedAndGZeroObjectRule(objs,depends,options)        @@\
  525. all::                                    @@\
  526.     @if [ ! -d shared ]; then mkdir shared; else exit 0; fi        @@\
  527.     @if [ ! -d gzero ]; then mkdir gzero; else exit 0; fi        @@\
  528.                                     @@\
  529. objs:    depends                                @@\
  530.     $(RM) $@ shared/$@ gzero/$@ $*.os \                @@\
  531.     && $(CC) -G 0 -c $(SHAREDCODEDEF) $(SHLIBDEF) $(CFLAGS) options $*.c \    @@\
  532.     && $(MV) $@ shared/$*.o \                    @@\
  533.     && $(CC) -G 0 -c $(CFLAGS) options $*.c \            @@\
  534.     && $(LD) -r $@ -o gzero/$@ \                    @@\
  535.     && $(CC) -c $(CFLAGS) options $*.c \                @@\
  536.     && $(LD) -r $@ -o $*.os \                    @@\
  537.     && $(MV) $*.os $@
  538.  
  539.  
  540. /*
  541.  * SpecialAndGZeroObjectRule - generate rules to compile a file with special
  542.  * flags.
  543.  */
  544. #define SpecialGZeroObjectRule(objs,depends,options)            @@\
  545. objs:    depends                                @@\
  546.     $(RM) $@ gzero/$@ $*.os \                    @@\
  547.     && $(CC) -G 0 -c $(CFLAGS) options $*.c \            @@\
  548.     && $(LD) -r $@ -o gzero/$@ \                    @@\
  549.     && $(CC) -c $(CFLAGS) options $*.c \                @@\
  550.     && $(LD) -r $@ -o $*.os \                    @@\
  551.     && $(MV) $*.os $@
  552.  
  553. /*
  554.  * SpecialDebuggedAndGZeroObjectRule - generate rules to compile a file
  555.  * with special flags and to make a "-G 0", and a debuggable version.
  556.  */
  557. #define    SpecialDebuggedAndGZeroObjectRule(objs,depends,options)        @@\
  558. all::                                    @@\
  559.     @if [ ! -d debugger ]; then mkdir debugger; else exit 0; fi    @@\
  560.     @if [ ! -d gzero ]; then mkdir gzero; else exit 0; fi        @@\
  561.                                     @@\
  562. objs:    depends                                @@\
  563.     $(RM) $@ debugger/$@ gzero/$@ $*.os \                @@\
  564.     && $(CC) -g -c $(CFLAGS) options $*.c \                @@\
  565.     && $(MV) $*.o debugger/$*.o \                    @@\
  566.     && $(CC) -G 0 -c $(CFLAGS) options $*.c \            @@\
  567.     && $(LD) -r $@ -o gzero/$@ \                    @@\
  568.     && $(CC) -c $(CFLAGS) options $*.c \                @@\
  569.     && $(LD) -r $@ -o $*.os \                    @@\
  570.     && $(MV) $*.os $@
  571.  
  572. /*
  573.  * NormalSharedLibraryTarget - generate rules to create a shared library;
  574.  * build it into a different name so that the we don't hose people by having
  575.  * the library gone for long periods.
  576.  */
  577. #ifndef NormalSharedLibraryTarget
  578. #define NormalSharedLibraryTarget(libname,rev,solist)            @@\
  579. AllTarget(lib/**/libname/**/_s)                        @@\
  580.                                     @@\
  581. lib/**/libname/**/_s: solist lib/**/libname/**/.spec    @@\
  582.     $(RM) $@ $@.a \                            @@\
  583.     && cd shared \                            @@\
  584.     && mkshlib -s ../lib/**/libname/**/.spec -t ../$@ -h ../$@.a \    @@\
  585.     && sleep 1 && touch ../$@ /* to outdate libname_s.a */        @@\
  586.                                     @@\
  587. clean::                                    @@\
  588.     $(RM) lib/**/libname/**/_s
  589.  
  590. #endif /* NormalSharedLibraryTarget */
  591.  
  592. /*
  593.  * NormalSharedLibraryDataTarget - generate rules to create shlib data file;
  594.  * build it into a different name so that the we don't hose people by having
  595.  * the library gone for long periods.
  596.  */
  597. #ifndef NormalSharedLibraryDataTarget
  598. #define NormalSharedLibraryDataTarget(libname,rev,salist)        @@\
  599. AllTarget(lib/**/libname/**/_s.a)                    @@\
  600.                                     @@\
  601. lib/**/libname/**/_s.a:  lib/**/libname/**/_s salist            @@\
  602.     ar rs $@ salist                            @@\
  603.                                     @@\
  604. clean::                                    @@\
  605.     $(RM) lib/**/libname/**/_s.a
  606.  
  607. #endif /* NormalSharedLibraryDataTarget */
  608.  
  609. /*
  610.  * InstallSharedLibrary - generate rules to install the shared library.
  611.  * NOTE: file must be executable, hence "INSTBINFLAGS"
  612.  */
  613. #ifndef InstallSharedLibrary
  614. #define    InstallSharedLibrary(libname,rev,dest)                @@\
  615. install:: lib/**/libname/**/_s                        @@\
  616.     $(INSTALL) -c $(INSTBINFLAGS) lib/**/libname/**/_s dest
  617.  
  618. #endif /* InstallSharedLibrary */
  619.  
  620. /*
  621.  * InstallSharedLibraryData - generate rules to install the shared library data
  622.  */
  623. #ifndef InstallSharedLibraryData
  624. #define    InstallSharedLibraryData(libname,rev,dest)            @@\
  625. install:: lib/**/libname/**/_s.a                    @@\
  626.     $(INSTALL) -c $(INSTLIBFLAGS) lib/**/libname/**/_s.a dest
  627.  
  628. #endif /* InstallSharedLibraryData */
  629.  
  630. /*
  631.  * GZeroLibraryTarget - generate rules to create a gzerod library.
  632.  */
  633. #ifndef GZeroLibraryTarget
  634. #define    GZeroLibraryTarget(libname,objlist)                @@\
  635. AllTarget(lib/**/libname/**/_G0.a)                    @@\
  636.                                     @@\
  637. lib/**/libname/**/_G0.a: objlist                    @@\
  638.     $(RM) $@                            @@\
  639.     cd gzero; $(AR) ../$@ objlist                    @@\
  640.     $(RANLIB) $@
  641.  
  642. #endif /* GZeroLibraryTarget */
  643.  
  644. /* END of Replacement Rules */
  645.  
  646. /* General Parameters Affecting Clients And The Server */
  647. #define StandardDefines -DSYSV -DMALLOC_0_RETURNS_NULL
  648.  
  649. /* Server Build Parameters */
  650. #define XsgiServer Xsgi
  651. #define MipsGNUM
  652. #define ServerCCOptions MipsGNUM DefaultCCOptions
  653.  
  654. #if defined UsePCFFonts && UsePCFFonts
  655. #define FontDefines -DFONT_PCF -DFONT_BDF -DCOMPRESSED_FONTS -DFONT_SNF \
  656.  -DFONT_NEWS
  657. #else
  658. #define FontDefines -DFONT_BDF -DCOMPRESSED_FONTS -DFONT_SNF -DFONT_NEWS
  659. #endif
  660.  
  661. /* MOTIF -- Don't Build By Default !! */
  662. #ifndef BuildMotif
  663. #define BuildMotif        NO
  664. #endif
  665.  
  666. #ifndef Crt1
  667. #define Crt1 /usr/lib/crt1.o
  668. #endif /* Crt1 */
  669.  
  670. #ifndef Crtn
  671. #define Crtn /usr/lib/crtn.o
  672. #endif /* Crtn */
  673.  
  674. CRT1 = Crt1
  675. CRTN = Crtn
  676.